program Rect;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
  Rectangle = class
    public
    a, b : integer;
    procedure Square; virtual;
    procedure Update;
    private
    s : integer;
  end;

  SmartRectangle = class(Rectangle)
  procedure Square; override;
  procedure Setn (newa, newb : integer);
end;

var
  n : SmartRectangle;
  newa, newb : integer;


{ Rectangle }

procedure Rectangle.Square;
begin
  writeln (n.s);
end;

procedure Rectangle.Update;
begin
  n.s := n.a * n.b
end;

{ SmartRectangle }

procedure SmartRectangle.Setn(newa, newb: integer);
begin
  n.a := newa;
  n.b := newb;
  n.s := n.a * n.b;
end;

procedure SmartRectangle.Square;
begin
  if (n.a * n.b <> n.s) then
    writeln ('Oops!')
  else
    writeln(n.s);
end;

begin
  n := SmartRectangle.Create;
  readln(newa, newb);
  n.a := newa;
  n.b := newb;
  n.Setn (newa,newb);
  n.Square;
  readln;
end.
